NexusPi Git Node
tests/frontend/viteDx.test.js 786bddfe0aebae27a59e4e8aa7a87ae9a1163c12 (786bddfe) Text, 5.13 KB
T8b949e// SPDX-License-Identifier: 0BSD
Tff7b72import Tb4b4b4{ Te6edf3readFileSync Tb4b4b4} Tff7b72from Ta5d6ff"node:fs"Tb4b4b4;
Tff7b72import Tb4b4b4{ Te6edf3resolve Tb4b4b4} Tff7b72from Ta5d6ff"node:path"Tb4b4b4;
Tff7b72import Tb4b4b4{ Te6edf3describeTb4b4b4, Te6edf3expectTb4b4b4, Te6edf3it Tb4b4b4} Tff7b72from Ta5d6ff"vitest"Tb4b4b4;
Tff7b72import Tb4b4b4{ Te6edf3detectLaunchEditorTb4b4b4, Te6edf3envFlagEnabledTb4b4b4, Te6edf3isVueDevToolsEnabled Tb4b4b4} Tff7b72from Ta5d6ff"../../scripts/vite-dx.mjs"Tb4b4b4;
Tff7b72const Te6edf3ROOT Tff7b72= Te6edf3resolveTb4b4b4(Tff7b72importTb4b4b4.Te6edf3metaTb4b4b4.Te6edf3dirnameTb4b4b4, Ta5d6ff"../.."Tb4b4b4)Tb4b4b4;
Te6edf3describeTb4b4b4(Ta5d6ff"vite-dx Vue DevTools gate"Tb4b4b4, Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Te6edf3itTb4b4b4(Ta5d6ff"oracle: only vite serve enables DevTools by default"Tb4b4b4, Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72const Te6edf3cases Tff7b72= Tb4b4b4[
Tb4b4b4{ Te6edf3commandTff7b72: Ta5d6ff"serve"Tb4b4b4, Te6edf3envTff7b72: Tb4b4b4{Tb4b4b4}Tb4b4b4, Te6edf3expectedTff7b72: Tff7b72true Tb4b4b4}Tb4b4b4,
Tb4b4b4{ Te6edf3commandTff7b72: Ta5d6ff"build"Tb4b4b4, Te6edf3envTff7b72: Tb4b4b4{Tb4b4b4}Tb4b4b4, Te6edf3expectedTff7b72: Tff7b72false Tb4b4b4}Tb4b4b4,
Tb4b4b4{ Te6edf3commandTff7b72: Ta5d6ff"serve"Tb4b4b4, Te6edf3envTff7b72: Tb4b4b4{ Te6edf3VITESTTff7b72: Ta5d6ff"true" Tb4b4b4}Tb4b4b4, Te6edf3expectedTff7b72: Tff7b72false Tb4b4b4}Tb4b4b4,
Tb4b4b4{ Te6edf3commandTff7b72: Ta5d6ff"serve"Tb4b4b4, Te6edf3envTff7b72: Tb4b4b4{ Te6edf3MESHCHAT_VUE_DEVTOOLSTff7b72: Ta5d6ff"0" Tb4b4b4}Tb4b4b4, Te6edf3expectedTff7b72: Tff7b72false Tb4b4b4}Tb4b4b4,
Tb4b4b4{ Te6edf3commandTff7b72: Ta5d6ff"serve"Tb4b4b4, Te6edf3envTff7b72: Tb4b4b4{ Te6edf3MESHCHAT_VUE_DEVTOOLSTff7b72: Ta5d6ff"false" Tb4b4b4}Tb4b4b4, Te6edf3expectedTff7b72: Tff7b72false Tb4b4b4}Tb4b4b4,
Tb4b4b4{ Te6edf3commandTff7b72: Ta5d6ff"serve"Tb4b4b4, Te6edf3envTff7b72: Tb4b4b4{ Te6edf3MESHCHAT_VUE_DEVTOOLSTff7b72: Ta5d6ff"1" Tb4b4b4}Tb4b4b4, Te6edf3expectedTff7b72: Tff7b72true Tb4b4b4}Tb4b4b4,
Tb4b4b4{ Te6edf3commandTff7b72: Ta5d6ff"build"Tb4b4b4, Te6edf3envTff7b72: Tb4b4b4{ Te6edf3MESHCHAT_VUE_DEVTOOLSTff7b72: Ta5d6ff"1" Tb4b4b4}Tb4b4b4, Te6edf3expectedTff7b72: Tff7b72false Tb4b4b4}Tb4b4b4,
Tb4b4b4{ Te6edf3commandTff7b72: Tff7b72undefinedTb4b4b4, Te6edf3envTff7b72: Tb4b4b4{Tb4b4b4}Tb4b4b4, Te6edf3expectedTff7b72: Tff7b72false Tb4b4b4}Tb4b4b4,
Tb4b4b4]Tb4b4b4;
Tff7b72for Tb4b4b4(Tff7b72const Te6edf3input Tff7b72of Te6edf3casesTb4b4b4) Tb4b4b4{
Te6edf3expectTb4b4b4(Te6edf3isVueDevToolsEnabledTb4b4b4(Tb4b4b4{ Te6edf3commandTff7b72: Te6edf3inputTb4b4b4.Te6edf3commandTb4b4b4, Te6edf3envTff7b72: Te6edf3inputTb4b4b4.Te6edf3env Tb4b4b4}Tb4b4b4)Tb4b4b4, Tffa657JSONTb4b4b4.Te6edf3stringifyTb4b4b4(Te6edf3inputTb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(
Te6edf3inputTb4b4b4.Te6edf3expected
Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3itTb4b4b4(Ta5d6ff"envFlagEnabled accepts 1/true/yes only"Tb4b4b4, Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Te6edf3expectTb4b4b4(Te6edf3envFlagEnabledTb4b4b4(Ta5d6ff"1"Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Tff7b72trueTb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3envFlagEnabledTb4b4b4(Ta5d6ff"true"Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Tff7b72trueTb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3envFlagEnabledTb4b4b4(Ta5d6ff"YES"Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Tff7b72trueTb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3envFlagEnabledTb4b4b4(Ta5d6ff"0"Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Tff7b72falseTb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3envFlagEnabledTb4b4b4(Ta5d6ff""Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Tff7b72falseTb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3envFlagEnabledTb4b4b4(Tff7b72undefinedTb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Tff7b72falseTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3itTb4b4b4(Ta5d6ff"detectLaunchEditor prefers LAUNCH_EDITOR then code"Tb4b4b4, Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Te6edf3expectTb4b4b4(Te6edf3detectLaunchEditorTb4b4b4(Tb4b4b4{ Te6edf3LAUNCH_EDITORTff7b72: Ta5d6ff"webstorm" Tb4b4b4}Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Ta5d6ff"webstorm"Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3detectLaunchEditorTb4b4b4(Tb4b4b4{Tb4b4b4}Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Ta5d6ff"code"Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3itTb4b4b4(Ta5d6ff"vite.config.js wires the plugin, production DevTools flag, and localhost server"Tb4b4b4, Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72const Te6edf3vite Tff7b72= Te6edf3readFileSyncTb4b4b4(Te6edf3resolveTb4b4b4(Te6edf3ROOTTb4b4b4, Ta5d6ff"vite.config.js"Tb4b4b4)Tb4b4b4, Ta5d6ff"utf8"Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3viteTb4b4b4)Tb4b4b4.Te6edf3toContainTb4b4b4(Ta5d6ff'from "vite-plugin-vue-devtools"'Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3viteTb4b4b4)Tb4b4b4.Te6edf3toContainTb4b4b4(Ta5d6ff"isVueDevToolsEnabled({ command })"Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3viteTb4b4b4)Tb4b4b4.Te6edf3toContainTb4b4b4(Ta5d6ff'__VUE_PROD_DEVTOOLS__: "false"'Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3viteTb4b4b4)Tb4b4b4.Te6edf3toContainTb4b4b4(Ta5d6ff"sourcemap: false"Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3viteTb4b4b4)Tb4b4b4.Te6edf3toContainTb4b4b4(Ta5d6ff"devSourcemap: true"Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3viteTb4b4b4)Tb4b4b4.Te6edf3toContainTb4b4b4(Ta5d6ff'host: "127.0.0.1"'Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3viteTb4b4b4)Tb4b4b4.Te6edf3toContainTb4b4b4(Ta5d6ff"strictPort: true"Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3viteTb4b4b4)Tb4b4b4.Te6edf3toContainTb4b4b4(Ta5d6ff"clearScreen: false"Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3itTb4b4b4(Ta5d6ff"Docker frontend stages copy every vite.config.js scripts/ import"Tb4b4b4, Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72const Te6edf3vite Tff7b72= Te6edf3readFileSyncTb4b4b4(Te6edf3resolveTb4b4b4(Te6edf3ROOTTb4b4b4, Ta5d6ff"vite.config.js"Tb4b4b4)Tb4b4b4, Ta5d6ff"utf8"Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3imports Tff7b72= Tb4b4b4[Tb4b4b4...Te6edf3viteTb4b4b4.Te6edf3matchAllTb4b4b4(Ta5d6ff/from\s+"(\.\/scripts\/[^"]+)"/gTb4b4b4)Tb4b4b4]Tb4b4b4.Te6edf3mapTb4b4b4(Tb4b4b4(Te6edf3mTb4b4b4) Tb4b4b4=> Te6edf3mTb4b4b4[T79c0ff1Tb4b4b4]Tb4b4b4.Te6edf3replaceTb4b4b4(Ta5d6ff/^\.\//Tb4b4b4, Ta5d6ff""Tb4b4b4)Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3importsTb4b4b4.Te6edf3lengthTb4b4b4)Tb4b4b4.Te6edf3toBeGreaterThanTb4b4b4(T79c0ff0Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3importsTb4b4b4)Tb4b4b4.Te6edf3toContainTb4b4b4(Ta5d6ff"scripts/vite-dx.mjs"Tb4b4b4)Tb4b4b4;
Tff7b72for Tb4b4b4(Tff7b72const Te6edf3dockerfile Tff7b72of Tb4b4b4[Ta5d6ff"Dockerfile"Tb4b4b4, Ta5d6ff"Dockerfile.hardened"Tb4b4b4]Tb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3body Tff7b72= Te6edf3readFileSyncTb4b4b4(Te6edf3resolveTb4b4b4(Te6edf3ROOTTb4b4b4, Te6edf3dockerfileTb4b4b4)Tb4b4b4, Ta5d6ff"utf8"Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3frontendStage Tff7b72= Te6edf3bodyTb4b4b4.Te6edf3splitTb4b4b4(Ta5d6ff/^FROM /mTb4b4b4)Tb4b4b4[T79c0ff1Tb4b4b4] Tff7b72|| Ta5d6ff""Tb4b4b4;
Tff7b72for Tb4b4b4(Tff7b72const Te6edf3rel Tff7b72of Te6edf3importsTb4b4b4) Tb4b4b4{
Te6edf3expectTb4b4b4(Te6edf3frontendStageTb4b4b4, Ta5d6ff`Tffd700${Te6edf3dockerfileTffd700}Ta5d6ff missing COPY Tffd700${Te6edf3relTffd700}Ta5d6ff`Tb4b4b4)Tb4b4b4.Te6edf3toContainTb4b4b4(Ta5d6ff`Ta5d6ffCOPY Tffd700${Te6edf3relTffd700}Ta5d6ff Tffd700${Te6edf3relTffd700}Ta5d6ff`Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3itTb4b4b4(Ta5d6ff"e2e Vite stack disables Vue DevTools"Tb4b4b4, Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72const Te6edf3e2e Tff7b72= Te6edf3readFileSyncTb4b4b4(Te6edf3resolveTb4b4b4(Te6edf3ROOTTb4b4b4, Ta5d6ff"scripts/e2e/start-e2e-stack.sh"Tb4b4b4)Tb4b4b4, Ta5d6ff"utf8"Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3e2eTb4b4b4)Tb4b4b4.Te6edf3toContainTb4b4b4(Ta5d6ff"MESHCHAT_VUE_DEVTOOLS=0"Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3itTb4b4b4(Ta5d6ff"package.json lists vite-plugin-vue-devtools as a devDependency"Tb4b4b4, Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72const Te6edf3pkg Tff7b72= Tffa657JSONTb4b4b4.Te6edf3parseTb4b4b4(Te6edf3readFileSyncTb4b4b4(Te6edf3resolveTb4b4b4(Te6edf3ROOTTb4b4b4, Ta5d6ff"package.json"Tb4b4b4)Tb4b4b4, Ta5d6ff"utf8"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3pkgTb4b4b4.Te6edf3devDependenciesTb4b4b4[Ta5d6ff"vite-plugin-vue-devtools"Tb4b4b4]Tb4b4b4)Tb4b4b4.Te6edf3toBeTruthyTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3itTb4b4b4(Ta5d6ff"debugpy in task debug binds 127.0.0.1 only"Tb4b4b4, Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72const Te6edf3dev Tff7b72= Te6edf3readFileSyncTb4b4b4(Te6edf3resolveTb4b4b4(Te6edf3ROOTTb4b4b4, Ta5d6ff"scripts/dev-local.sh"Tb4b4b4)Tb4b4b4, Ta5d6ff"utf8"Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3devTb4b4b4)Tb4b4b4.Te6edf3toContainTb4b4b4(Ta5d6ff'debugpy --listen "127.0.0.1:${dbg_port}"'Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3devTb4b4b4)Tb4b4b4.Te6edf3notTb4b4b4.Te6edf3toContainTb4b4b4(Ta5d6ff"--listen 0.0.0.0"Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3devTb4b4b4)Tb4b4b4.Te6edf3toContainTb4b4b4(Ta5d6ff"MESHCHAT_DEBUGPY"Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3taskfile Tff7b72= Te6edf3readFileSyncTb4b4b4(Te6edf3resolveTb4b4b4(Te6edf3ROOTTb4b4b4, Ta5d6ff"Taskfile.yml"Tb4b4b4)Tb4b4b4, Ta5d6ff"utf8"Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3taskfileTb4b4b4)Tb4b4b4.Te6edf3toContainTb4b4b4(Ta5d6ff"MESHCHAT_DEBUGPY=1 bash scripts/dev-local.sh"Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3itTb4b4b4(Ta5d6ff"debugger launch configs attach debugpy on localhost and Chrome to Vite"Tb4b4b4, Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72const Te6edf3launch Tff7b72= Tffa657JSONTb4b4b4.Te6edf3parseTb4b4b4(Te6edf3readFileSyncTb4b4b4(Te6edf3resolveTb4b4b4(Te6edf3ROOTTb4b4b4, Ta5d6ff".vscode/launch.json"Tb4b4b4)Tb4b4b4, Ta5d6ff"utf8"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3names Tff7b72= Te6edf3launchTb4b4b4.Te6edf3configurationsTb4b4b4.Te6edf3mapTb4b4b4(Tb4b4b4(Te6edf3cTb4b4b4) Tb4b4b4=> Te6edf3cTb4b4b4.Te6edf3nameTb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3namesTb4b4b4)Tb4b4b4.Te6edf3toContainTb4b4b4(Ta5d6ff"Backend: Attach debugpy"Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3namesTb4b4b4)Tb4b4b4.Te6edf3toContainTb4b4b4(Ta5d6ff"Frontend: Chrome (Vite)"Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3attach Tff7b72= Te6edf3launchTb4b4b4.Te6edf3configurationsTb4b4b4.Te6edf3findTb4b4b4(Tb4b4b4(Te6edf3cTb4b4b4) Tb4b4b4=> Te6edf3cTb4b4b4.Te6edf3name Tff7b72=== Ta5d6ff"Backend: Attach debugpy"Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3attachTb4b4b4.Te6edf3connectTb4b4b4)Tb4b4b4.Te6edf3toEqualTb4b4b4(Tb4b4b4{ Te6edf3hostTff7b72: Ta5d6ff"127.0.0.1"Tb4b4b4, Te6edf3portTff7b72: T79c0ff5678 Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3chrome Tff7b72= Te6edf3launchTb4b4b4.Te6edf3configurationsTb4b4b4.Te6edf3findTb4b4b4(Tb4b4b4(Te6edf3cTb4b4b4) Tb4b4b4=> Te6edf3cTb4b4b4.Te6edf3name Tff7b72=== Ta5d6ff"Frontend: Chrome (Vite)"Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3chromeTb4b4b4.Te6edf3urlTb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Ta5d6ff"http://127.0.0.1:5173"Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3compound Tff7b72= Te6edf3launchTb4b4b4.Te6edf3compoundsTb4b4b4.Te6edf3findTb4b4b4(Tb4b4b4(Te6edf3cTb4b4b4) Tb4b4b4=> Te6edf3cTb4b4b4.Te6edf3name Tff7b72=== Ta5d6ff"MeshChatX: Vite + Python"Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3compoundTb4b4b4.Te6edf3preLaunchTaskTb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Ta5d6ff"meshchatx: debug"Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Served by rngit 1.5.4 - Generated in 0.02s